package com.superquan.selfstudybootmybatis.utils.singleton;

/**
 * @program: self-study-bootmybatis
 * @ClassName StaticPattern
 * @description: 饿汉实现单例模式
 * @author: zwq
 **/
public class HungryPattern {

	//类初始化时会立即加载该对象，线程安全且调用效率高
	//有个缺点，可能会产生一些无用对象
	private static HungryPattern hungryPattern=new HungryPattern();

	//饿汉模式构造方法是私有的，因此不能被继承
	private HungryPattern() {
		System.out.println("私有的HungryPattern构造参数初始化！");
	}

	//getInstance方法：用于提供一种访问其唯一的对象的方式
	public static HungryPattern getInstance(){
		return hungryPattern;
	}

	public static void main(String[] args) {
		HungryPattern hp1 = HungryPattern.getInstance();
		HungryPattern hp2 = HungryPattern.getInstance();
		//"=="比较的是引用，若未true则说明hp1和hp2是同一个实例
		if(hp1==hp2){
			System.out.println("HungryPattern是使用了饿汉单例模式创建，因此hp1和hp2是同一个实例");
		}
	}

}
